package com.chushouya.product.service.admin;

import com.general.framework.core.schema.PageResult;
import com.chushouya.product.dto.admin.tempevaluate.TempEvaluateItemDetailDTO;
import com.chushouya.product.dto.admin.tempevaluate.TempEvaluateItemListDTO;
import com.chushouya.product.dto.admin.tempevaluate.TempEvaluateItemQuery;
import com.chushouya.product.dto.admin.tempevaluate.TempEvaluateItemSaveDTO;
import com.chushouya.product.dto.admin.tempevaluate.TempEvaluateItemUpdateDTO;

import java.util.List;

/**
 * 模板估价项目业务
 */
public interface TempEvaluateItemService {

    /**
     * 分页查询模板估价项目
     * @param query 参数
     * @return 分页对象
     */
    PageResult<TempEvaluateItemListDTO> selectTempEvaluateItemPageResult(TempEvaluateItemQuery query);

    /**
     * 查询模板估价项目列表
     * @param query 参数
     * @return 列表
     */
    List<TempEvaluateItemListDTO> selectTempEvaluateItemList(TempEvaluateItemQuery query);

    /**
     * 根据ID查询模板估价项目
     * @param tempItemId 模板估价项目ID
     * @return 模板估价项目详情
     */
    TempEvaluateItemDetailDTO getTempEvaluateItemDetail(Long tempItemId);

    /**
     * 新增模板估价项目
     * @param tempEvaluateItem 模板估价项目
     * @return ID
     */
    Long addTempEvaluateItem(TempEvaluateItemSaveDTO tempEvaluateItem);

    /**
     * 修改模板估价项目
     * @param tempEvaluateItem 模板估价项目
     * @return ID
     */
    Long editTempEvaluateItem(TempEvaluateItemUpdateDTO tempEvaluateItem);

    /**
     * 删除模板估价项目
     * @param tempItemId 模板估价项目ID
     */
    void removeTempEvaluateItem(Long tempItemId);

    /**
     * 根据模板ID查询估价项目列表
     * @param tempId 模板ID
     * @return 列表
     */
    List<TempEvaluateItemListDTO> selectTempEvaluateItemListByTempId(Long tempId);

    /**
     * 根据项目ID查询模板估价项目列表
     * @param itemId 项目ID
     * @return 列表
     */
    List<TempEvaluateItemListDTO> selectTempEvaluateItemListByItemId(Long itemId);
}
